>我有一个CSV,但行的列数不同,因为在某些行中,缺少一些值。所以没有索引。每个值的"含义"目前由该值的前缀编码。我需要清理我的 CSV,以便创建一个新的 CSV,它仅根据前缀保存某些列的值。
看起来像这样:
001234;aA431;cFM33;jJE LE (3);xABCD;421;
004321;aB432;cPD99;433
006543;aC332;cHR31;x4231;499
新的CSV应该有一个标题,它的名字可以是列的前缀(第一个字母(:
0;a;c;4
01234;A431;FM33;21
04321;B432;PD99;33
06543;C332;HR31;99
我开始与python熊猫合作,所以任何这方面的提示都是受欢迎的。
您可以使用
df1=df.astype(str).copy()
cols = df1.iloc[0].str[0].tolist()
df1=df1.apply(lambda x: x.str[1:])
df1.columns = cols
输入
A B C D E F
0 1234 aA431 cFM33 jJE LE (3) xABCD 421.0
1 4321 aB432 cPD99 433 NaN NaN
2 6543 aC332 cHR31 x4231 499 NaN
输出
print(df1)
1 a c j x 4
0 234 A431 FM33 JE LE (3) ABCD 21.0
1 321 B432 PD99 33 an an
2 543 C332 HR31 4231 99 an
print(df1)