【发布时间】:2019-08-27 12:04:10
【问题描述】:
我有两个数据框,第一个有我的主要数据。我正在从第一个数据帧中取出一列,并使用字符串拆分制作另一个数据帧。
_t1 = df1["TABLE_NAME"].str.split("_",expand = True)
_t1.head()
df1 的第一个值为T_STG_PRG_POS_NORM_FAREAST,第二个值为T_STG_PRG_POS_NORM_EXEC_DBIT
_t1 looks like:
+---+-----+-----+-----+------+---------+------+------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+-----+-----+-----+------+---------+------+------+
| T | STG | PRG | POS | NORM | FAREAST | None | |
| T | STG | PRG | POS | NORM | EXCEC | DBIT | None |
+---+-----+-----+-----+------+---------+------+------+
现在我想创建一个列 df1["SYSTEM NAME"],它的第 0 行和 DBIT 的值应该是 FAREAST
我正在尝试这个循环:
for index,row in df1.iterrows():
for column in _t1:
if (pd.isna(_t1[column][row])== True):
df1["SYSTEM NAME"]= _t1[column-1][row]
但我收到错误消息:ValueError: cannot index with vector containing NA / NaN values
【问题讨论】:
-
你可以试试
df1["SYSTEM NAME"]=df1["TABLE_NAME"].str.split("_").str[5]吗? -
@anky_91 适用于第 0 行,但不适用于其他行。 _t1 共有 7 列,5-7 中的任何一个都可以是最终值。
-
所以你想要每个
_t1行的最终有效值? -
@Valentino
df1["SYSTEM NAME"]中的值应该是_t1每一行的最后一个非None 值 -
您的示例中没有第 7 列。
标签: python pandas dataframe iterator