我有以下代码来加载数据框
for (int i = 0; i < nodeList.getLength(); i++) {
Node currentNode = nodeList.item(i);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
currentNode.getNodeName();
currentNode.getTextContent();
//And whatever you like
}
}
给出以下输出,请参阅csv的结构
import pandas as pd
ufo = pd.read_csv('csv_path')
print ufo.loc[[0,1,2] , :]
现在,我想基于现有列添加额外的列。 我有一个列表,其中包含参与列的索引。 它可以是 0,1 或 0,2,3 或 1,2,3 。
我需要动态创建它。 我可以提出以下
City Colors Reported Shape Reported State Time
0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00
1 Willingboro NaN OTHER NJ 6/30/1930 20:00
2 Holyoke NaN OVAL CO 2/15/1931 14:00
放置索引似乎不起作用。
我想加入这些专栏。使用df1['combined'] = df1['City']+','+df1['State']
答案 0 :(得分:3)
假设您想要join
的所有列的数据类型为str
,您可以使用带有整数的[]
来获取列并使用apply
加入它们:
df[[0,2,3]].apply(','.join, axis=1)
#0 Ithaca,TRIANGLE,NY
#1 Willingboro,OTHER,NJ
#2 Holyoke,OVAL,CO
#dtype: object
答案 1 :(得分:3)
如果索引列表为l
,您可以使用pd.Series.cat
:
df[df.columns[l[0]]].astype(str).str.cat([df[df.columns[i]].astype(str) for i in l[1: ]], sep=',')
示例强>
In [18]: df = pd.DataFrame({'a': [1, 2], 'b': [2, 'b'], 'c': [3, 'd']})
In [19]: df[df.columns[l[0]]].astype(str).str.cat([df[df.columns[i]].astype(str) for i in l[1: ]], sep=',')
Out[19]:
0 1,2
1 2,b
Name: a, dtype: object
答案 2 :(得分:3)