我有一个像这样的pandas数据框:
COL data
line1 [A,B,C]
Run Code Online (Sandbox Code Playgroud)
其中数据列中的项可以是列表,也可以是逗号分隔的元素.有一种简单的获取方式:
COL data
line1 A
line1 B
line1 C
Run Code Online (Sandbox Code Playgroud)
我可以遍历列表并通过python手动复制行,但有没有一些神奇的熊猫技巧呢?关键是如何自动复制行.
谢谢!
您可以编写一个简单的清理函数使其成为一个列表(假设它不是逗号列表,您不能简单地使用ast.literal_eval):
def clean_string_to_list(s):
return [c for c in s if c not in '[,]'] # you might need to catch errors
df['data'] = df['data'].apply(clean_string_to_list)
Run Code Online (Sandbox Code Playgroud)
迭代行似乎是一个合理的选择:
In [11]: pd.DataFrame([(row['COL'], d)
for d in row['data']
for _, row in df.iterrows()],
columns=df.columns)
Out[11]:
COL data
0 line1 A
1 line1 B
2 line1 C
Run Code Online (Sandbox Code Playgroud)
我担心我不认为大熊猫特别适合这种操纵.
| 归档时间: |
|
| 查看次数: |
6243 次 |
| 最近记录: |